Representational State Transfer

Representational state transfer (REST) je termín z počítačových věd, cesta, jak jednoduše vytvořit, číst, aktualizovat (editovat) nebo smazat informace ze serveru pomocí jednoduchých HTTP volání. Jde o obecně přijímaný příklad (paradigma) softwarové architektury distribuovaných systémů, zejména webových služeb. REST je abstrakce struktury a chování World Wide Webu. Cílem REST je vytvořit architektonický styl, který lépe splňuje požadavky moderního webu.

Šest požadavků (zásad, charakteristik, také architektonických principů) kladených na architektonický styl vyhovující paradigmatu REST:[1][2]

  • klient-server (Client-Server) – klient a server jsou nezávislí
  • bezestavový (Stateless) – server stav klienta nezaznamenává
  • ukládání do mezipaměti (Cache) – server označuje data ukládaná do mezipaměti
  • jednotné rozhraní (Uniform Interface) – server vystavuje klientovi prostředky jednotným a předvídatelným způsobem
  • vícevrstvý systém (Layered System) – prostředníci mezi klientem a serverem chování neovlivňují

a volitelný

  • kód na vyžádání (Code-On-Demand) – server klientovi může přidat další funkce tím, že mu pošle kód, který může tento klient spustit[3]

Především požadavek na jednotné rozhraní odlišuje paradigma REST od ostatních architektonických stylů. Jakým způsobem musí být tyto zásady prováděny, stanoveno není.

Roy Fielding, jeden z hlavních autorů specifikace HTTP a autor architektonického stylu REST, popisuje výhody a nevýhody jednotlivých architektonických principů ve své disertační práci Architectural Styles and the Design of Network-based Software Architectures z roku 2000[1] v kapitole 5, kde principy RESTu odvozuje na základě známých přístupů k architektuře.

Rozhraní REST je použitelné pro jednotný a snadný přístup ke zdrojům (resources). Zdrojem mohou být data, stejně jako stavy aplikace (pokud je lze popsat konkrétními daty). REST je tedy na rozdíl od známějších XML-RPC či SOAP, orientován datově, nikoli procedurálně. Všechny zdroje mají vlastní identifikátor URI a REST definuje také čtyři základní metody pro přístup k nim překrývající se s funkcemi CRUD[2], pro vytváření (Create), čtení (Read), aktualizaci (Update) a mazání (Delete).

  1. a b FIELDING, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. www.ics.uci.edu [online]. University of California, Irvine, 2000 [cit. 2023-01-15]. Dissertation. Dissertation Committee: Professor Richard N. Taylor, Chair Professor Mark S. Ackerman and Professor David S. Rosenblum. Dostupné online. (anglicky) 
  2. a b BUSH, Thomas. CRUD vs. REST: What's the Difference? | Nordic APIs |. Nordic APIs [online]. 2020-08-25 [cit. 2023-01-15]. Dostupné online. (anglicky) 
  3. Code on demand (optional) - Building RESTful Web Services with PHP 7 [Book]. www.oreilly.com [online]. [cit. 2023-01-15]. Dostupné online. (anglicky) 

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search